﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Crosland.Automotriz.Seguridad.Entity;
namespace Crosland.Automotriz.Seguridad.DataAccess
{
    public class clsT_Seg_Usuario_ClienteDAO
    {
        private Automotriz_TesisEntities bd = new Automotriz_TesisEntities();
        public bool Insertar(T_SEG_USUARIO_CIENTE Obj)
        {
            try
            {
                bd.AddObject("T_SEG_USUARIO_CIENTE", Obj);
                bd.SaveChanges();
            }
            catch (Exception)
            {
                return false;
            }
            return true;
        }


        public bool Insertar_T_SEG_USUARIO_CLIENTE(int ID_USAURIO_CLIENTE, string ID_USUARIO, int ID_CLIENTE)
        {
            try
            {
                bd.ExecuteStoreCommand("INSERT INTO T_SEG_USUARIO_CIENTE (ID_USUARIO_CLIENTE,ID_USUARIO,ID_CLIENTE) VALUES (" + ID_USAURIO_CLIENTE + ",'" + ID_USUARIO + "'," + ID_CLIENTE +")");
                return true;
            }
            catch
            {
                return false;
            }


        }



        public bool Modificar_T_SEG_USUARIO_CLIENTE(T_SEG_USUARIO_CIENTE obj)
        {
            try
            {
                bd.AttachTo("T_SEG_USUARIO_CIENTE", obj);
                bd.ObjectStateManager.ChangeObjectState(obj, System.Data.EntityState.Modified);
                bd.SaveChanges();
            }
            catch (Exception)
            {
                return false;

            }
            return true;
        }

        public bool Eliminar_T_SEG_USUARIO_CLIENTE(T_SEG_USUARIO_CIENTE obj)
        {
            try
            {
                bd.AttachTo("T_SEG_USUARIO_CIENTE", obj);
                bd.DeleteObject(obj);
                bd.SaveChanges();
            }
            catch (Exception)
            {
                return false;
            }
            return true;
        }



        public bool EliminarRelacionT_SEG_USUARIO_CLIENTE(string id_usuario)
        {

            try
            {
                bd.ExecuteStoreCommand("DELETE FROM T_SEG_USUARIO_CIENTE WHERE ID_USUARIO ='" + id_usuario + "'");
                return true;
            }
            catch
            {

                return false;
            }
        }



        public List<clsT_Seg_Usuario_Cliente> lista_T_SEG_USUARIO_CLIENTE(string id_usuario)
        {
            Crosland.Automotriz.Core.AutomotrizEntities ContextoDeObjs = new Crosland.Automotriz.Core.AutomotrizEntities();

            List<clsT_Seg_Usuario_Cliente> list = new List<clsT_Seg_Usuario_Cliente>();

            try
            {
                var q = from v in ContextoDeObjs.TD_CLIENTE
                        from o in ContextoDeObjs.T_SEG_USUARIO_CIENTE
                        where o.ID_CLIENTE==v.ID_CLIENTE && o.ID_USUARIO==id_usuario
                        select new clsT_Seg_Usuario_Cliente
                        {
                            DES_CLIENTE=v.DES_CLIENTE,
                            ID_CLIENTE=o.ID_CLIENTE,
                            ID_USUARIO=o.ID_USUARIO,
                            ID_USUARIO_CLIENTE=o.ID_USUARIO_CLIENTE
                        };


                list = q.ToList();
            }
            catch (Exception)
            { }

            return list;

        }






        public int UltimoNumeroUsuarioCliente()
        {
            int max = 0;

            try
            {
                max = bd.T_SEG_USUARIO_CIENTE.Select(x => x.ID_USUARIO_CLIENTE).Max();


            }
            catch (Exception)
            {
                return max;
            }

            return max;

        }

    }
}
